The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
One use of a database management system (DBMS) is to ensure the security and integrity of mass amounts of data. Data repositories, such as databases and file systems, contain critical data for both individual users and enterprise businesses. Therefore, ensuring the security and integrity of such data is a primary concern for individuals and enterprises alike.
Typically, backup databases and file systems are created in order to ensure that data is not lost in the event of a failure of a database system. However, when data is manipulated on a source database, the change may not be immediately propagated to the backup database. Further, many database platforms are available from different vendors. Users may wish to communicate data between databases provided by different database vendors. This is more commonly known as heterogeneous database replication. For example, vendors may wish to replicate data between an Oracle database and a non-Oracle database.
One drawback of existing database platforms is their inability to communicate with each other. Typically, different database vendors engineer database management systems differently. As such, it is not easy to replicate changes made on a database from one vendor to a database supplied by another vendor.
One replication approach involves taking the changes from the source database and storing them in some persistent storage, such as a hard disk drive or other type of non-volatile storage medium, before applying them to the target database. However, this approach has numerous drawbacks. First, storing changes in persistent storage is a very slow process and limits the maximum data replication rate. For example, persistent storage may only allow changes on the order of one operation per millisecond. If a large amount of data needed to be replicated from one database to another, the process is even slower.
What is desired is a method for heterogeneous data replication that does not suffer from the drawbacks of previous approaches.